﻿package mortal.game.view.platform.platformTencent
{
    import Message.DB.Tables.*;
    import Message.Public.*;
    import __AS3__.vec.*;
    import extend.language.*;
    import mortal.common.global.*;
    import mortal.game.cache.*;
    import mortal.game.resource.*;
    import mortal.game.resource.info.*;
    import mortal.game.view.activeTime.*;
    import mortal.game.view.nationalDayAct.*;
    import mortal.game.view.platform.*;

    public class PlatformTencentUtil extends Object
    {
        public static const enter_Yellow_Normal:int = 1;
        public static const enter_Blue_Normal:int = 2;
        private static const _paramValArr:Object = {year:1, deluxe:2};
        public static var canGetFlag:Boolean = false;
        public static var startDt:Date;
        public static var endDt:Date;

        public function PlatformTencentUtil()
        {
            return;
        }// end function

        public static function getIsYear(param1 = null) : int
        {
            var _loc_2:int = 0;
            var _loc_3:SProxyInfo = null;
            if (param1)
            {
                _loc_2 = (int(param1) & _paramValArr.year) / _paramValArr.year;
            }
            else
            {
                _loc_3 = Cache.instance.platform.proxyVipInfo;
                _loc_2 = _loc_3.proxyExtend & _paramValArr.year;
            }
            return _loc_2;
        }// end function

        public static function getIsDeluxe(param1 = null) : int
        {
            var _loc_2:int = 0;
            var _loc_3:SProxyInfo = null;
            if (param1)
            {
                _loc_2 = (int(param1) & _paramValArr.deluxe) / _paramValArr.deluxe;
            }
            else
            {
                _loc_3 = Cache.instance.platform.proxyVipInfo;
                _loc_2 = _loc_3.proxyExtend & _paramValArr.deluxe;
            }
            return _loc_2;
        }// end function

        public static function isYellowEnter() : Boolean
        {
            if (PlatformConst.isQQ() && ParamsConst.instance.enterType == enter_Yellow_Normal)
            {
                return true;
            }
            return false;
        }// end function

        public static function isBlueEnter() : Boolean
        {
            if (PlatformConst.isQQ() && ParamsConst.instance.enterType == enter_Blue_Normal)
            {
                return true;
            }
            return false;
        }// end function

        public static function getQQVipIconUrl(param1 = null) : String
        {
            var _loc_3:int = 0;
            var _loc_4:Object = null;
            var _loc_5:int = 0;
            var _loc_6:int = 0;
            var _loc_7:int = 0;
            var _loc_8:int = 0;
            var _loc_9:Object = null;
            var _loc_10:String = null;
            var _loc_11:Array = null;
            var _loc_12:String = null;
            var _loc_13:DefInfo = null;
            var _loc_14:int = 0;
            var _loc_2:String = "";
            if (PlatformConst.isQQ())
            {
                _loc_3 = ParamsConst.instance.enterType;
                if (param1 is String)
                {
                    _loc_9 = JSON.parse(param1);
                    _loc_10 = "tx_" + String(_loc_3);
                    _loc_4 = new Object();
                    if (_loc_9)
                    {
                        if (_loc_9[_loc_10])
                        {
                            _loc_11 = String(_loc_9[String(_loc_10)]).split("#");
                            _loc_4.proxyLv = _loc_11[0];
                            _loc_4.proxyExtend = _loc_11[1];
                            _loc_4.proxyExtend2 = _loc_11[2];
                        }
                    }
                    else
                    {
                        _loc_4.proxyLv = 0;
                        _loc_4.proxyExtend = 0;
                        _loc_4.proxyExtend2 = 0;
                    }
                }
                else if (param1)
                {
                    _loc_4 = param1;
                }
                else
                {
                    _loc_4 = {proxyLv:Cache.instance.platform.proxyVipInfo.proxyLv, proxyExtend:Cache.instance.platform.proxyVipInfo.proxyExtend, proxyExtend2:Cache.instance.platform.proxyVipInfo.proxyExtend2};
                }
                if (_loc_4["proxyLv"])
                {
                    _loc_5 = _loc_4["proxyLv"];
                }
                if (_loc_5 > 0)
                {
                    if (_loc_4["proxyExtend"])
                    {
                        _loc_6 = getIsYear(_loc_4["proxyExtend"]);
                    }
                    if (_loc_4["proxyExtend"])
                    {
                        _loc_7 = getIsDeluxe(_loc_4["proxyExtend"]);
                    }
                    if (_loc_4["proxyExtend2"])
                    {
                        _loc_8 = _loc_4["proxyExtend2"];
                    }
                    _loc_12 = "";
                    if (_loc_3 == enter_Yellow_Normal)
                    {
                        _loc_12 = "Yellow";
                    }
                    else if (_loc_3 == enter_Blue_Normal)
                    {
                        _loc_12 = "Blue";
                    }
                    else
                    {
                        return "";
                    }
                    _loc_13 = GameDefConfig.instance.getItem("QQColorVip", _loc_5);
                    if (_loc_13)
                    {
                        _loc_14 = _loc_7 * 2 + _loc_6 + 1;
                        _loc_2 = String(_loc_13["text" + String(_loc_14)] + ".png").replace("$$$", _loc_12);
                    }
                }
            }
            return _loc_2;
        }// end function

        public static function getVipLevel() : int
        {
            if (Cache.instance.platform.proxyVipInfo)
            {
                return Cache.instance.platform.proxyVipInfo.proxyLv;
            }
            return 0;
        }// end function

        public static function isPast() : Boolean
        {
            if (Cache.instance.platform.proxyVipInfo)
            {
                return Cache.instance.platform.proxyVipInfo.proxyExtend2 > 0;
            }
            return false;
        }// end function

        public static function isNormalPast() : Boolean
        {
            var _loc_1:int = 0;
            var _loc_2:int = 0;
            if (isPast())
            {
                _loc_2 = Cache.instance.platform.proxyVipInfo.proxyExtend2;
                _loc_1 = (int(_loc_2) & 1) / 1;
            }
            return Boolean(_loc_1);
        }// end function

        public static function isDexulePast() : Boolean
        {
            var _loc_1:int = 0;
            var _loc_2:int = 0;
            if (isPast())
            {
                _loc_2 = Cache.instance.platform.proxyVipInfo.proxyExtend2;
                _loc_1 = (int(_loc_2) & 2) / 2;
            }
            return Boolean(_loc_1);
        }// end function

        public static function hasXufeiGiftReward() : Boolean
        {
            var _loc_1:Boolean = false;
            if (canGetFlag)
            {
                if (!isGetGiftByGiftId(PlatformGiftConfig.instance.xufeiGift.id))
                {
                    _loc_1 = true;
                }
            }
            return _loc_1;
        }// end function

        public static function isGetGiftByGiftId(param1:int) : Boolean
        {
            var _loc_2:* = Cache.instance.platform.platformGiftInfo;
            var _loc_3:int = 0;
            while (_loc_3 < _loc_2.length)
            {
                
                if (param1 == _loc_2[_loc_3])
                {
                    return true;
                }
                _loc_3++;
            }
            return false;
        }// end function

        public static function hasDailyVipReward() : Boolean
        {
            var _loc_2:Vector.<TPlatformGift> = null;
            var _loc_3:int = 0;
            var _loc_1:Boolean = false;
            if (getVipLevel() > 0 && !isPast())
            {
                _loc_2 = PlatformGiftConfig.instance.vipGiftVec;
                _loc_3 = 0;
                while (_loc_3 < _loc_2.length)
                {
                    
                    if (PlatformVIPGiftsUtil.getReceiveTypeByTPlatformGift(_loc_2[_loc_3], false) == PlatformVIPGiftGroup.CanReceive)
                    {
                        _loc_1 = true;
                        break;
                    }
                    _loc_3++;
                }
            }
            return _loc_1;
        }// end function

        public static function getStarDt() : Date
        {
            var _loc_1:* = ActiveTimeUtil.getSClientActive(EActiveType._EActiveTypeTxConRechargeBD);
            if (_loc_1 != null)
            {
                startDt = new Date(_loc_1.startDt.time);
            }
            return startDt;
        }// end function

        public static function hasNewHandGiftReward() : Boolean
        {
            var _loc_1:Boolean = false;
            if (getVipLevel() > 0 && !isPast())
            {
                if (!isGetGiftByGiftId(PlatformGiftConfig.instance.newHandGift.id))
                {
                    _loc_1 = true;
                }
            }
            return _loc_1;
        }// end function

        public static function hasDailyLoginGiftReward() : Boolean
        {
            var _loc_2:TPlatformGift = null;
            var _loc_1:Boolean = false;
            if (getIsYear() && !isPast())
            {
                _loc_2 = PlatformGiftConfig.instance.dailyLoginGift;
                if (_loc_2 && !isGetGiftByGiftId(_loc_2.id))
                {
                    _loc_1 = true;
                }
            }
            return _loc_1;
        }// end function

        public static function hasDailyDeluxeGiftReward() : Boolean
        {
            var _loc_2:TPlatformGift = null;
            var _loc_1:Boolean = false;
            if (getIsDeluxe() && !isPast())
            {
                _loc_2 = PlatformGiftConfig.instance.dailyDeluxeGift;
                if (_loc_2 && !isGetGiftByGiftId(_loc_2.id))
                {
                    _loc_1 = true;
                }
            }
            return _loc_1;
        }// end function

        public static function hasLevelGiftReward() : Boolean
        {
            var _loc_2:Vector.<TPlatformGift> = null;
            var _loc_3:int = 0;
            var _loc_1:Boolean = false;
            if (getVipLevel() > 0 && !isPast())
            {
                _loc_2 = PlatformGiftConfig.instance.levelGiftVec;
                _loc_3 = 0;
                while (_loc_3 < _loc_2.length)
                {
                    
                    if (getLGRTByTPlatformGift(_loc_2[_loc_3]) == PlatformVIPGiftGroup.CanReceive)
                    {
                        _loc_1 = true;
                        break;
                    }
                    _loc_3++;
                }
            }
            return _loc_1;
        }// end function

        public static function getLevelGiftRewardNum() : int
        {
            var _loc_2:Vector.<TPlatformGift> = null;
            var _loc_3:int = 0;
            var _loc_1:int = 0;
            if (getVipLevel() > 0 && !isPast())
            {
                _loc_2 = PlatformGiftConfig.instance.levelGiftVec;
                _loc_3 = 0;
                while (_loc_3 < _loc_2.length)
                {
                    
                    if (getLGRTByTPlatformGift(_loc_2[_loc_3]) == PlatformVIPGiftGroup.CanReceive)
                    {
                        _loc_1++;
                    }
                    _loc_3++;
                }
            }
            return _loc_1;
        }// end function

        public static function getLGRTByTPlatformGift(param1:TPlatformGift) : int
        {
            var _loc_3:int = 0;
            var _loc_4:Array = null;
            var _loc_5:int = 0;
            var _loc_2:* = PlatformVIPGiftGroup.UnReceive;
            if (getVipLevel() > 0 && !isPast())
            {
                _loc_3 = Cache.instance.role.entityInfo.level;
                if (_loc_3 >= param1.lvLimit)
                {
                    _loc_2 = PlatformVIPGiftGroup.CanReceive;
                }
                else
                {
                    _loc_2 = PlatformVIPGiftGroup.UnReceive;
                }
                _loc_4 = Cache.instance.platform.platformGiftInfo;
                _loc_5 = 0;
                while (_loc_5 < _loc_4.length)
                {
                    
                    if (_loc_4[_loc_5] == param1.id)
                    {
                        _loc_2 = PlatformVIPGiftGroup.HasReceive;
                    }
                    _loc_5++;
                }
            }
            return _loc_2;
        }// end function

        public static function getCategoryData(param1:int) : nationalDayActCategoryData
        {
            var _loc_3:String = null;
            var _loc_4:int = 0;
            var _loc_2:* = new nationalDayActCategoryData();
            switch(param1)
            {
                case PlatformQQConst.Tag_A:
                {
                    _loc_3 = ImagesConst.QQVipTag1;
                    _loc_4 = 39;
                    break;
                }
                case PlatformQQConst.Tag_B:
                {
                    _loc_3 = ImagesConst.QQVipTag2;
                    _loc_4 = 42;
                    break;
                }
                case PlatformQQConst.Tag_C:
                {
                    _loc_3 = ImagesConst.QQVipTag4;
                    _loc_4 = 39;
                    break;
                }
                case PlatformQQConst.Tag_D:
                {
                    _loc_3 = ImagesConst.QQVipTag3;
                    _loc_4 = 39;
                    break;
                }
                default:
                {
                    break;
                }
            }
            _loc_2.index = param1;
            _loc_2.resName = _loc_3;
            _loc_2.textXPos = _loc_4;
            _loc_2.textYPos = 18;
            return _loc_2;
        }// end function

        public static function getLanZuanTips() : String
        {
            var _loc_1:String = "";
            var _loc_2:* = Language.getString(35644);
            if (PlatformTencentUtil.isBlueEnter())
            {
                if (PlatformTencentUtil.getVipLevel() > 0)
                {
                    _loc_1 = Language.getString(35646);
                }
                else
                {
                    _loc_1 = Language.getString(35645);
                }
            }
            return _loc_1 + _loc_2;
        }// end function

    }
}
